package com.packenius.library.xspdf;

/**
 * Font names for all 14 Type 1 standard fonts.
 * 
 * @author Christian Packenius, 2013.
 */
public enum XSFontType {
  /**
   * "ORDINARY" Helvetica font.
   */
  Helvetica("Helvetica", "HN", new XST1StdFontHelvetica()),

  /**
   * "Bold" Helvetica font.
   */
  HelveticaBold("Helvetica-Bold", "HB", new XST1StdFontHelveticaBold()),

  /**
   * "Oblique" Helvetica font.
   */
  HelveticaOblique("Helvetica-Oblique", "HO", new XST1StdFontHelveticaOblique()),

  /**
   * "Bold, oblique" Helvetica font.
   */
  HelveticaBoldOblique("Helvetica-BoldOblique", "HBO", new XST1StdFontHelveticaBoldOblique()),

  /**
   * "ORDINARY" Courier font.
   */
  Courier("Courier", "CN", new XST1StdFontCourier()),

  /**
   * "Bold" Courier font.
   */
  CourierBold("Courier-Bold", "CB", new XST1StdFontCourierBold()),

  /**
   * "Oblique" Courier font.
   */
  CourierOblique("Courier-Oblique", "CO", new XST1StdFontCourierOblique()),

  /**
   * "Bold, oblique" Courier font.
   */
  CourierBoldOblique("Courier-BoldOblique", "CBO", new XST1StdFontCourierBoldOblique()),

  /**
   * "ORDINARY" Times font.
   */
  Times("Times-Roman", "TN", new XST1StdFontTimesRoman()),

  /**
   * "Bold" Times font.
   */
  TimesBold("Times-Bold", "TB", new XST1StdFontTimesBold()),

  /**
   * "Italic" Times font.
   */
  TimesItalic("Times-Italic", "TI", new XST1StdFontTimesItalic()),

  /**
   * "Bold, Italic" Times font.
   */
  TimesBoldItalic("Times-BoldItalic", "TBI", new XST1StdFontTimesBoldItalic()),

  /**
   * Symbol font.
   */
  Symbol("Symbol", "SY", new XST1StdFontSymbol()),

  /**
   * Symbol font.
   */
  ZapfDingbats("ZapfDingbats", "ZD", new XST1StdFontZapfDingbats());

  final String fontName;

  final String logicalName;

  /**
   * Real font behind this virtual font.
   */
  public final XST1StdFont fontClass;

  XSFontType(String fontName, String logicalName, XST1StdFont fontClass) {
    this.fontName = fontName;
    this.logicalName = logicalName;
    this.fontClass = fontClass;
  }
}
